Research Student Monitoring Group Report 4 , academic year 2007 / 2008
نویسنده
چکیده
Automatic Programming (AP) [15] is an ambitious goal that has been greedily sought since the 1950s. During the history of computer science, the term AP has been used for different concepts. Here, with the term AP we define the automation of implementing software given a starting formal specification. In the past, the work about AP was based on transformations (e.g., [11]), in which formal rules were used to map high level specification expressions to low level implementations. Such an approach has many limits, because not always there can be this direct mapping. For example, in that way we cannot automatically implement even a simple sorting algorithm whose specification just states that each element should be lower or equal than the next one, and that the final array should be a permutation of the input one. To our best knowledge, no general approach that might be able to tackle each possible specification has been proposed yet. Hence, we proposed a novel evolutionary approach [5] based on Co-evolution, Genetic Programming (GP) [12] and Search Based Software Testing [14]. The main difference from standard applications of GP is that we use the formal specification for automatically generating the fitness function that will guide the evolution. Moreover, there is the problem of generating a proper training set, that will be composed by Unit Tests. We do that with a co-evolution. In other words, we use search based software testing techniques to evolve unit tests to discover new bugs (if any) in the current generation of genetic programs. Hence, at each generation, we evolve the programs to pass the unit tests, and at the same time we evolve the unit tests for finding new bugs in the programs. Hopefully, this co-evolution will lead to an arms race that will bring to the evolution of a program that satisfies the given formal specification. Although we got some preliminary results [5], those results show some performance limitations. The main problems are that GP is still an immature field, and moreover we are not sure whether it is possible to generate good fitness functions (i.e., functions that do not show a “needle in the hay-stack” behaviour) for most software specifications. However, the approach that we proposed might work for any feasible software, and that is the only approach we know that might do it. Instead of trying to improve our AP framework for evolving program from scratch, we think it is more wise to use it to tackle a related simpler problem: Automatic Bug Fixing (ABF), which consists of fixing bugs in software in an automatic way. The idea is very simple: given a bugged program and a formal specification of it, we use the above framework to evolve a correct program. The main difference is that, instead of starting the co-evolution with a random population of genetic programs, we seed the first genetic population with n copies of the bugged program. Because in general we start with a solution that is structurally near to the optimal one, we might expect to fix bugs even in complex software. For the same reason, we can use ABF even when only a fixed set of unit tests (i.e., a test suite) is provided (i.e., no formal specification), because sub-optimal solutions are less likely to happen than in AP (more details can be found in [4, 3]). At any rate, showing the feasibility of our AP framework is still important, because in this way we can infer that ABF might potentially handle any type of bug. In literature, there is a huge amount of work on Software Testing. However, software testing can only show the presence of bugs. Although there have been (comparatively few) work on how to localise the position of the bugs (i.e., Automating Debugging, e.g. [17]), to our best knowledge the actual change of the code to fix the
منابع مشابه
Fourth Year Evaluation of Tennessee Charter Schools 2006 - 2007
i Preface In 2002, Tennessee passed its first Public Charter School legislation. Four schools were successful in gaining approval to begin operating in the 2003-2004 academic year. The second cohort of three charter schools began operation during the 2004-2005 academic year, with the third cohort of five schools starting-up during the 2005-2006 academic year. No new schools were added during th...
متن کاملHow We Teach Student-centered physiology in high schools
Anjur SS. Student-centered physiology in high schools. Adv Physiol Educ 35: 161–167, 2011; doi:10.1152/advan.00076.2010.— Student test score percentages in the Physiology and Disease (PAD) course at the Illinois Mathematics and Science Academy, a high school for students of the state of Illinois gifted in math and science, were studied over a period of 5 yr. Inquiry-based laboratory experiences...
متن کامل48-58 Stecker Win 08.indd
In this article, the authors describe the use of curriculumbased measurement as a research-validated practice for monitoring student academic achievement and ultimately for improving students’ educational outcomes. The authors describe oral-reading fluency and maze fluency as assessment tools for monitoring student progress, evaluating instructional effectiveness, and aiding teachers with instr...
متن کاملStudent Monitoring Group Report 5 , academic year 2007 / 2008
Software Testing is used to find the presence of bugs in computer programs [20]. If no bug is found, testing cannot guarantee that the software is bug-free. However, testing can be used to increase our confidence in the software reliability. Unfortunately, testing is expensive, time consuming and tedious. It is estimated that testing requires around 50% of the total cost of software development...
متن کاملUsing an iPod Touch to Teach Social and Self - Management Skills to an Elementary Student with Emotional / Behavioral Disorders
A ten year-old boy exhibiting frequent off-task and disruptive behavior during small group math instruction was taught to use an iPod Touch for video modeling and self-monitoring purposes. A single-subject changing conditions (A-B-BC) design was used to investigate the differential effects of video modeling versus a combination of video modeling and self-monitoring. During the first interventio...
متن کاملThe Academic Dental Careers Fellowship Program: a pilot program to introduce dental students to academia.
The Academic Dental Careers Fellowship Program (ADCFP) was established in 2006 by the American Dental Education Association (ADEA) and the American Association for Dental Research (AADR) with the financial support of the ADA Foundation to encourage dental students to consider careers in dental education and to provide participating fellows with insights into academic life. The ADA Foundation pr...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008